package com.xuecheng.api.order;

import com.xuecheng.api.order.model.dto.OrdersDTO;
import com.xuecheng.api.order.model.pay.PayCodeUrlResult;
import com.xuecheng.api.order.model.qo.QueryOrdersModel;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * <p></p>
 *
 * @Description:
 */
@Api(value = "订单服务API, 订单生成、查看、取消、删除", tags = "订单管理")
public interface OrderApi {

    @ApiOperation("查询机构的财务报表订单数据")
    public PageVO<OrdersDTO> queryMyOrgList(PageRequestParams params, @RequestBody QueryOrdersModel model);

    @ApiOperation("根据课程发布ID生成课程支付订单")
    @ApiImplicitParam(name = "coursePubId", value = "课程发布ID", required = true, dataType = "Long", paramType = "path", example = "1")
    OrdersDTO createOrder(Long coursePubId);

    @ApiOperation("个人中心-我的订单,根据订单状态分页查询")
    public PageVO<OrdersDTO> queryMyOrderList(PageRequestParams params, QueryOrdersModel model);

    @ApiOperation("创建订单支付数据")
    PayCodeUrlResult createPayment(String orderNo);

}
